#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define MAXBUFF 4096

int main(int arg, char *argv[])
{ 
        FILE * nfile; // 파일포인터
        int nRet = 0; // read() 결과값
        char cBuff[1024]; // read buffer
        char cFileName[256]; // 파일명 변수
        fpos_t posn;
        int nFirst = 0;

       
        memset(cFileName, 0x00, 256);
        strcpy(cFileName, argv[1]);
        //printf("fpos_t size = [%d]\n", sizeof(fpos_t));
       
        nfile = fopen(cFileName,"r");
        while(fgets(cBuff, MAXBUFF, nfile));
        fgetpos(nfile, &posn);
        fsetpos(nfile, &posn);
        nFirst = 1;
        fclose(nfile);

        while(1) 
        {
                usleep(1000); // 읽는 주기(이 방식이 좀 찜찜함)
               
                nfile = fopen(cFileName,"r");
                if(!nFirst)
                {
                        fgetpos(nfile, &posn);
                        nFirst = 1;
                }
                fsetpos(nfile, &posn);
                while(fgets(cBuff, MAXBUFF, nfile)) // 그 위치서부터 읽기 시작
                { 
                        printf("%s", cBuff);
                        memset(cBuff, 0x00, 1024);
                }
                fgetpos(nfile, &posn);
                fclose(nfile);
        }
}

